<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        html {
            background: #f2f2f2;
            padding-top: 50px;
        }
        .edit {
            position: relative;
            width: 5px;
            height: 50px;
            background: #fff;
            display: inline-block;
            -webkit-transition: 0.3s;
            transition: 0.3s;
        }
        .edit:after,
        .edit:before {
            content: '';
            position: absolute;
            left: 0;
            -webkit-transition: 0.3s;
            transition: 0.3s;
        }
        .edit:after {
            background: #fff;
            width: 5px;
            height: 50px;
            top: 0px;
            -ms-transform: rotate(-90deg);
            -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
            -webkit-transition: -webkit-transform 0.3s, width 0.3s, height 0.3s, top 0.3s;
            -webkit-transition-delay: 0.4s, 0s, 0s, 0s;
            -webkit-transition: -webkit-transform 0.3s 0.4s, width 0.3s, height 0.3s, top 0.3s;
            transition: transform 0.3s 0.4s, width 0.3s, height 0.3s, top 0.3s;
        }
        .btn {
            height: 100px;
            width: 100px;
            border-radius: 100%;
            background: #db4437;
            border: none;
            margin: auto;
            display: block;
            position: relative;
            top: -50%;
            -ms-transform: translateY(50%);
            -webkit-transform: translateY(50%);
            transform: translateY(50%);
            box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
            -webkit-transition: all 0.3s;
            transition: all 0.3s;
            cursor: pointer;
        }
        .btn:hover {
            box-shadow: 0 2px 7px rgba(0, 0, 0, 0.5);
        }
        .btn:hover .edit {
            -ms-transform: rotate(45deg);
            -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
            -moz-transition: all 0.3s 0.2s;
            -o-transition: all 0.3s 0.2s;
            -webkit-transition: all 0.3s;
            -webkit-transition-delay: 0.2s;
            -webkit-transition: all 0.3s 0.2s;
            transition: all 0.3s 0.2s;
            width: 10px;
        }
        .btn:hover .edit:after {
            width: 10px;
            height: 7px;
            top: -10px;
            -ms-transform: rotate(0deg);
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
            border-radius: 2px 2px 0 0;
            -webkit-transition: width 0.3s, height 0.3s, top 0.3s, -webkit-transform 0.3s;
            -webkit-transition-delay: 0.3s, 0.4s, 0.4s, 0s;
            -webkit-transition: width 0.3s 0.3s, height 0.3s 0.4s, top 0.3s 0.4s, -webkit-transform 0.3s;
            transition: width 0.3s 0.3s, height 0.3s 0.4s, top 0.3s 0.4s, transform 0.3s;
        }
        .btn:hover .edit:before {
            border: 5px solid transparent;
            border-top-color: #fff;
            top: 100%;
        }
    </style>
</head>
<body>
<button class="btn">
    <i class="edit"></i>
</button>
</body>
</html>